Laravel Dusk 提供我們瀏覽器自動化及測試 API。首先把套件引入
composer require --dev laravel/dusk
再來我們利用 dusk:install 來創建 tests/Browser 目錄
php artisan dusk:install
接著我們可以開始看一下 tests/DuskTestCase.php 這個檔案,裡面主要是基本 Dusk 測試用例,我們要把 startChromeDriver 刪除,不刪除會開啟Chrome。
接下來設置一個測試檔案
php artisan dusk:make LoginTest
我們可以看到 tests/Browser 中有 LoginTest.php 這個檔案,稍微編輯一下
public function testExample()
{
$this->browse(function (Browser $browser) {
$browser->visit('/')
->assertSee('我是首頁');
});
}
接著測試看看
php artisan dusk
我們接著試著用他登入
class LoginTest extends DuskTestCase
{
use DatabaseMigrations;
/**
* A Dusk test example.
*
* @return void
*/
public function testBrowser()
{
User::create([
'account' => 'Jim',
'password' => Hash::make('ANDf3_'),
'name' => 'Jim'
]);
$this->browse(function ($browser) {
$browser->visit('/login')
->type('account', 'Jim')
->type('password', 'ANDf3_')
->press('login')
->assertPathIs('/login');
});
}
}
我們用 DatabaseMigrations 這個trait來讓DB在測試完後恢復原狀,並訪問登入頁面,模擬輸入帳密後,按下登入鍵的情境。
得到的結果
今天先介紹簡單的測試方法,明天再見囉!